package com.heima.mapper;

import com.github.pagehelper.Page;
import com.heima.annotation.AutoFill;
import com.heima.dto.ClueDto;
import com.heima.dto.ClueSelectDto;
import com.heima.dto.pagedto.CluePageDto;
import com.heima.entity.Clue;
import com.heima.enumeration.OperationType;
import com.heima.vo.ClueVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.List;

@Mapper
public interface ClueMapper {
    /**
     * 添加线索
     * @param clue
     */
    @AutoFill(OperationType.INSERT)
    void add(Clue clue);

    /**
     * 分页查询线索
     * @param cluePageDto
     * @return
     */
    Page<Clue> pageQuery(CluePageDto cluePageDto);

    /**
     * 批量插入线索
     * @param clueList
     */
    @AutoFill(OperationType.BATCH_INSERT)
    void addBatch(List<Clue> clueList);

    /**
     * 根据 id 查询 clue信息
     * @param id
     * @return
     */
    Clue queryById(Integer id);

    /**
     * 设置伪线索
     * @param id
     */
    void falseClueSetting(Integer id);

    /**
     * 跟进添加信息
     * @param clue
     */
    @AutoFill(OperationType.UPDATE)
    void record(Clue clue);

    /**
     * 线索池分页查询
     * @param cluePageDto
     * @return
     */
    Page<Clue> poolPageQuery(CluePageDto cluePageDto);

    /**
     * 批量捞取
     * @param ids
     */
    void batchGain(ArrayList<Integer> ids);

    /**
     * 批量分配线索
     * @param clueSelectDto
     */
    void assignment(ClueSelectDto clueSelectDto, String assignBy);
}
